home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_2 / twview91.zip / EXAMINE.PAS < prev    next >
Pascal/Delphi Source File  |  1992-03-11  |  3KB  |  121 lines

  1. program InfoViewer;
  2. { written mid december 1990 to date by woody }
  3. { dos version }
  4.  
  5. uses
  6.   DOS, CRT, graph;
  7.  
  8. {$I headers.inc}
  9.  
  10. var {globals}
  11.   space     : TheVoid;
  12.   BBSname   : string;
  13.   g         : text;
  14.   BaseChanged,
  15.   quit      : boolean;
  16.   distances : distanceArray;
  17.   verbose   : boolean;        { text output verbose or terse codes }
  18.   mono      : boolean;        { for monochrome graphics in printouts        }
  19.   svga      : boolean;        { special for autodetect. Not yet implemented.}
  20.  
  21. {$I QUEUE.INC }
  22. {$I status.inc }
  23. {$I misc.inc }
  24. {$I distance.inc }
  25. {$I viewdos.inc }
  26. {$I textdisp.inc }
  27. {$I portdisp.inc }
  28. {$I notestuf.inc }
  29. {$I basepath.inc }
  30. {$I pathstuf.inc }
  31. {$I teleport.inc }
  32. {$I GSDATA.INC }
  33. {$I busy.inc }
  34. {$I netchang.inc }
  35. {$I config.inc }
  36.  
  37. procedure menu;
  38. const
  39.   left = 35;
  40.   right = 40;
  41. begin
  42.   writeln('Choose one of ');
  43.   write('<A>dd note':left);
  44.   writeln('<B>usiest ports':right);
  45.   write('<C>lassify ports': left);
  46.   writeln('<D>elete note':right);
  47.   write('Closest place to buy <F>ighters':left);
  48.   writeln('Note <I>nformation':right);
  49.   write('<L>ength & path between two sectors':left);
  50.   writeln('<M>isc config options':right);
  51.   write('<N>earest port':left);
  52.   writeln('<P>aired ports':right);
  53.   write('<Q>uit':left);
  54.   writeln('Nearest <S>ectors':right);
  55.   write('<T>ranswarp menu':left);
  56.   writeln('Nearest <U>nexplored sectors':right);
  57.   write('<V>iew space in graphic format':left);
  58.   writeln('<W>here is nearest fighter cloud':right);
  59.   writeln('Net change <X>' : left);
  60.   writeln;
  61. end; {menu}
  62.  
  63. function choice : char;
  64. var
  65.   ch : char;
  66. begin
  67.   write('(', BBSName, ') [A, B, C, D, F, I, L, M, N, P, Q, S, T, U, V, W, X] Your choice?  ');
  68.   readln( ch );
  69.   choice := upcase( ch );
  70. end;
  71.  
  72. begin
  73.   Textcolor( LightGray );
  74.   clrScr;
  75.   writeln('Tradewars Data Base Viewer: ', version);
  76.   writeln( author );
  77.   writeln( source );
  78.   writeln;
  79.   Quit := false;
  80.   BaseChanged := false;
  81.   SVGA := false;
  82.   verbose := true;
  83.   Mono := false;
  84.   InitSpace( Space );
  85.   if paramcount > 0 then
  86.     BBSName := paramstr( 1 )
  87.   else
  88.     BBSName := '';
  89.   GetData( Space, BBSName );
  90.   menu;
  91.   repeat
  92.     case choice of
  93.     'A' : AddNote( BaseChanged );
  94.     'B' : BusyPorts;
  95.     'C' : NearestStuff( SpecPort, GetPortType );
  96.     'D' : RemoveNote( BaseChanged );
  97.     'F' : NearestFighters;
  98.     'I' : NearestStuff( NoteOnly, 0 );
  99.     'L' : PathLength;
  100.     'M' : ConfigStuff;
  101.     'N' : NearestStuff( PortOnly, 0 );
  102.     'P' : pairPort;
  103.     'Q' : quit := true;
  104.     'S' : NearestStuff( any, 0);
  105.     'T' : TransWarpMenu( BaseChanged );
  106.     'U' : NearestStuff( UnExpOnly, 0);
  107.     'V' : view;
  108.     'W' : NearestStuff( FighterOnly, 0 );
  109.     'X' : HighChange;
  110.     else
  111.       menu;
  112.     end; {case}
  113.   until quit;
  114.   if BaseChanged then
  115.     begin
  116.       assign( g, GetNewFileName('File name for new data base? ',
  117.                                   bbsname+'.dat') );
  118.       rewrite( g );
  119.       saveData( g, space );
  120.     end;
  121. end.